#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
using Cephei.QL;
namespace Cephei.QL.Experimental.Credit
{
    /// <summary> 
	/// ! The copula model \f[ Y_i = a_i\,M+\sqrt{1-a_i^2}\:Z_i \f] is specified here by setting the desnity function for all variables, \f$ M, Z,\f$ and also \f$ Y \f$ to the standard normal distribution \f$ \phi(x) = \exp(-x^2/2) / \sqrt{2\pi}. \f$
	/// </summary>
    [Guid ("258FA64B-4494-4be0-8577-56376AABDFFB"),ComVisible(true)]
	public interface IOneFactorGaussianCopula : Cephei.QL.Experimental.Credit.IOneFactorCopula
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        /// <summary> 
		/// 
		/// </summary>
		 Double CumulativeY(Double y);
        /// <summary> 
		/// 
		/// </summary>
		 Double CumulativeZ(Double z);
        /// <summary> 
		/// 
		/// </summary>
		 Double Density(Double m);
        /// <summary> 
		/// 
		/// </summary>
		 Double InverseCumulativeY(Double p);
        /// <summary> 
		/// -----------------------------------------------------------------------
		/// </summary>
		 Double TestCumulativeY(Double y);
    }   

    /// <summary> 
	/// ! The copula model \f[ Y_i = a_i\,M+\sqrt{1-a_i^2}\:Z_i \f] is specified here by setting the desnity function for all variables, \f$ M, Z,\f$ and also \f$ Y \f$ to the standard normal distribution \f$ \phi(x) = \exp(-x^2/2) / \sqrt{2\pi}. \f$ Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IOneFactorGaussianCopula_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        /// <summary> 
		/// 
		/// </summary>
	    IOneFactorGaussianCopula Create (Cephei.QL.IQuote correlation, Microsoft.FSharp.Core.FSharpOption<Double> maximum, Microsoft.FSharp.Core.FSharpOption<UInt64> integrationSteps);
    }
}

